/*! \file PrimitiveBuilder.h
 *	\brief <write description for PrimitiveBuilder.h>
 *
 *	created:	2010/07/12
 *	created:	12:7:2010   14:02
 *	filename: 	C:\src\tactics-engine\libs\gd_dx11\PrimitiveBuilder.h
 *	file path:	C:\src\tactics-engine\libs\gd_dx11
 *	file base:	PrimitiveBuilder
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _gd_dx11_PRIMITIVEBUILDER_H_
#define _gd_dx11_PRIMITIVEBUILDER_H_

#pragma once

#include <gd/PrimitiveBuilder.h>

namespace tt{
namespace gd_dx11{

class Device;

class PrimitiveBuilder : public gd::PrimitiveBuilder
{
	typedef float value_type;
public:
	PrimitiveBuilder(Device*);
	virtual ~PrimitiveBuilder();

protected:
	virtual SharedPtr<gd::Primitive> onCreatePrimitive();
	virtual SharedPtr<gd::IndexBuffer> onCreateIndexBuffer(UInt count);
	virtual SharedPtr<gd::VertexBuffer> onCreateVertexBuffer(const gd::VertexFormat&, UInt count);

private:
	Device* m_device;
};

} //namespace gd_dx11
} //namespace tt

#endif //_gd_dx11_PRIMITIVEBUILDER_H_
